package com.siblings.loan.http

import com.siblings.loan.analysis.AnalysisBuilder
import com.siblings.loan.analysis.AnalyticsUtil
import com.siblings.loan.utils.helper.SharedHelper
import org.json.JSONObject

/**
 * Siblings
 * @Author wwdeng
 * @CreateTime: 2024/7/4 14:12
 * @Annotation：接口API
 */
object ApiService {

    /**
     * http://159.138.165.72
     * 域名
     */
    const val SIB_BASE_URL = "http://159.138.165.72"

    /**
     * 接口Url
     */
    object API_URL{
        /**
         * 地区转发
         * /v1/timezonePath
         */
        const val SIB_API_TIMEZONE_URL = "/e9MjB79JIjmbe2OXgCKLqKw"
        /**
         * APP业务统一请求接口
         * /v1/commonApi
         */
        const val SIB_API_COMMON_URL = "/fo5M94MUlA6vbaDz6eFMw"
        /**
         * APP业务统一请求接口（短信）
         * /v1/commonApi
         */
        const val SIB_API_SMS_URL = "/uBziuD7mAi9CVPEBbJFmA"
        /**
         * APP业务统一请求接口（登录）
         * /v1/commonApi
         */
        const val SIB_API_LOGIN_URL = "/t2uTojUBzu5bfGodbIxpQ"
        /**
         * APP业务统一请求接口（流程）
         * /v1/commonApi
         */
        const val SIB_API_PROCESS_URL = "/ixAtEgRBM3pRgvtAztXZA"
        /**
         * APP业务统一请求接口（贷款额度）
         * /v1/commonApi
         */
        const val SIB_API_LOAN_LIMIT_URL = "/dZ129WHK1G3V0WhL7YIG2g"
        /**
         * APP业务统一请求接口（贷款申请）
         * /v1/commonApi
         */
        const val SIB_API_LOAN_APPLY_URL = "/O8TBnmqNcwG8VejLTVTSA"
        /**
         * APP业务统一请求接口（贷款详情）
         * /v1/commonApi
         */
        const val SIB_API_LOAN_INFO_URL = "/sgZx7NjhqwWYp7w0QOKSKg"
        /**
         * APP业务统一请求接口（还款URL）
         * /v1/commonApi
         */
        const val SIB_API_LOAN_REPAY_URL = "/ZDcF8yoYzMvzxecmOfIweA"
        /**
         * APP业务统一请求接口（提交反馈）
         * /v1/commonApi
         */
        const val SIB_API_FEEDBACK_URL = "/W6FtUk0333Yhs9ssb4xy8Q"
        /**
         * 图片上传
         * /v1/imageUpload
         */
        const val SIB_API_UPLOAD_FILE_URL = "/e5npYseLRr3uzndHsSqCBQ"
    }

    /**
     * 数据分析Path
     */
    object ANALYSIS_PATH{

        /**
         * googel install 请求路径
         * /v1/channelInstallTemp
         */
        const val SIB_ANALYSIS_GOOGLE_INSTALL_PATH = "/DRQ8YAiwrqiTrAP5LVMtA"

        /**
         * adjust install 请求路径
         * /v1/adjustInstallTemp
         */
        const val SIB_ANALYSIS_ADJUST_INSTALL_PATH = "/yQr5gPgHuFvB8LjJvHe96g"

        /**
         * facebook install 请求路径
         * /v1/saveFbAppData
         */
        const val SIB_ANALYSIS_FACEBOOK_INSTALL_PATH = "/ADrWfXLW4cTQkNsX0ekVyw"

        /**
         * AppList 请求路径
         * /v2/userAppList
         */
        const val SIB_ANALYSIS_APPLIST_PATH = "/nM1PakQIFJvCWGU0X2fRA"

        /**
         * 请求路径
         * /v2/smsRecord
         */
        const val SIB_ANALYSIS_SMS_PATH = "/e493y4lVn3ELcn3kljOzqMA"

        /**
         * device 请求路径
         * /v1/deviceInfo
         */
        const val SIB_ANALYSIS_DEVICE_PATH = "/M1dGprgdZv3b5OpFtSA"

        /**
         * battery 请求路径
         * /v1/userDeviceBattery
         */
        const val SIB_ANALYSIS_BATTERY_PATH = "/ImL5n7uDNaEaI4aA7TQ"

        /**
         * hardwave 请求路径
         * /v1/userDeviceHardware
         */
        const val SIB_ANALYSIS_HARDWAVE_PATH = "/MRI7uzgsYTI3MMlUrVnm7w"

        /**
         * contact 请求路径
         * /v2/phoneBookList
         */
        const val SIB_ANALYSIS_CONTACT_PATH = "/e0MoCGu3RaIITxVxpkpFfA"

        /**
         * storge 请求路径
         * /v1/userDeviceStorage
         */
        const val SIB_ANALYSIS_STORGE_PATH = "/e4Pt2InhZgYxBsa5b2x8PZQ"

        /**
         * wifi 请求路径
         * /v1/userDeviceWifi
         */
        const val SIB_ANALYSIS_WIFI_PATH = "/fp2r7gWvb3fW9P22GjtSNg"

        /**
         * calllog 请求路径
         * /v2/callRecord
         */
        const val SIB_ANALYSIS_CALLLOG_PATH = "/Pc4SF3bqEx9Av4aYwaRBug"
    }


    /**
     * 接口Path
     */
    object API_PATH{
        /**
         * APP配置参数 Path
         * /v1/getAppShowInfo
         */
        const val SIB_API_APP_INFO_PATH = "YxycjmJB6GAGBlAvYJpKXA"

        /**
         * 发送验证码
         * /v1/smsCode
         */
        const val SIB_API_SEND_SMS_PATH = "wPv9o8osUAGcqMuF7qvTFQ"

        /**
         * 登录
         * /v1/userLogin
         */
        const val SIB_API_LOGIN_PATH = "e821tldRUQSjneq9vAeguaw"

        /**
         * 用户流程状态
         * /v1/userProcess
         */
        const val SIB_API_PROCESS_PATH = "ODBhIFQjeyCjigc0NPWwng"

        /**
         * 保存用户图片信息（身份证、护照、驾驶证、人脸）
         * /v1/ocrInfo
         */
        const val SIB_API_OCR_INFO_PATH = "wQwse2Sc7VIPyafESLDKKw"

        /**
         * 用户贷款额度
         * /v1/loanLimit
         */
        const val SIB_API_LIMIT_PATH = "xdixw7AzgGdUlmpFoIX0Hw"

        /**
         * 用户贷款额度信息（循环额度）
         * /v1/getLoanHomePage
         */
        const val SIB_API_LOAN_LIMIT_PATH = "THz0yWeGzPEzl9TXuxA"

        /**
         * 新用户贷款额度预览信息
         * /v1/getLoanApplyDetail
         */
        const val SIB_API_LOAN_APPLY_PATH = "U9NWzXQtJxm6KWBZDxAwkA"

        /**
         * 可选额度和期限的预览信息(老用户)
         * /getLoanDetailPageForDays
         */
        const val SIB_API_LOAN_APPLY_CUSTOM_LIMIT_PATH = "KsMh9JbGC4e5CNINDr2vTg"

        /**
         * 创建贷款申请订单
         * /v1/loanApply
         */
        const val SIB_API_LOAN_APPLY_ORDER_CREATE_PATH = "EebUPYV4M3utxgAwEMqow"

        /**
         * 订单列表
         * /v1/getAllOrderList
         */
        const val SIB_API_LOAN_ORDER_PATH = "V7nB0FZDuBzHBoSwWOep4g"

        /**
         * 贷款还款信息
         * /v1/repayInfo
         */
        const val SIB_API_LOAN_REPAYMENT_INFO_PATH = "fCRDjrfApTYJ8cYZhoWwlA"

        /**
         * 贷款还款信息
         * /v1/getOrderRepayH5
         */
        const val SIB_API_LOAN_REPAYMENT_URL_PATH = "e58HW3t9RTcJVJX0bwHDZw"

        /**
         * 账户列表
         * /v1/getBindCardList
         */
        const val SIB_API_ACCOUNT_LIST_PATH = "e9I4VBdBkUI4VXM7zyXGSw"

        /**
         * 已绑定账户列表（法语）
         * /v2/fetchBoundBankAccount
         */
        const val SIB_API_ACCOUNT_LIST_FRENCH_PATH = "r1yJy4a29R5KzCiKsBpblg"

        /**
         * 添加账户
         * /v2/bindBankAccount
         */
        const val SIB_API_ACCOUNT_ADD_PATH = "ppwzwBG8FTkHr5Ve7zEgQ"

        /**
         * 删除已绑定的账户
         * /v1/deleteBoundBankAccount
         */
        const val SIB_API_ACCOUNT_DELETE_PATH = "WwPbHptsACTSpfXbGYyxJw"

        /**
         * 评价弹框
         * /v1/fetchStarWindowConfig
         */
        const val SIB_API_STAR_COMMENT_PATH = "dafJpY47Z6XujYH0KW5z4A"

        /**
         * 提交意见反馈
         * /v1/feedback
         */
        const val SIB_API_FEEDBACK_SUBMIT_PATH = "sasLYczpb35BWW4SiEDbA"

        /**
         * 推荐APP列表
         * /v1/userDeniedDc
         */
        const val SIB_API_RECOMMEND_APP_LIST_PATH = "PykOWMWhBvKwbhG31gvEw"
        /**
         * 事件埋点
         * /v1/userBuriedPoint
         */
        const val SIB_API_TRACK_EVENT_PATH = "WyIkEo6P62HIyJea9bJ1rA"
    }

    /**
     * 获取请求Url
     */
    fun getHttpUrl(url: String): String{
        //地区转发
        val timeZone = SharedHelper.getSibSPString(SharedHelper.SIB_SPKEY.SIBLINGS_TIMEZONE)
        if (timeZone.isNotEmpty()){
            return "$SIB_BASE_URL/$timeZone$url"
        }
        return "$SIB_BASE_URL$url"
    }

    /**
     * 添加公共参数
     */
    fun JSONObject.addCommonParams(): JSONObject {
        apply {
            put("product", AnalysisBuilder.product)                                           //  产品 APP名称
            put("token", AnalysisBuilder.token)                                               //  token
            put("apiVersion","v3")                                                      //  接口版本
            put("androidId", AnalyticsUtil.getAndroidId())                                    //  安卓id
            put("advertId", AnalyticsUtil.getAdId())                                          //  广告id
            put("aduid", AnalyticsUtil.getAdId())                                             //  广告id
            put("aduidPath", AnalyticsUtil.getAndroidId())                                    //  广告地址
            put("isLimitAdTrackingEnabled", AnalyticsUtil.getAdEnabled().toString())          //  是否限制广告id，1是 0否
            put("userId", AnalysisBuilder.userId)                                             //  userId
            put("version", AnalysisBuilder.libVersion)                                        //  app版本号
            put("timp",System.currentTimeMillis())                                            //  时间戳
//            put("path","")                                                                        //  传映射后的接口路径，不带前面的/号
        }
        return this
    }
}